package gui;

import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.UIManager;
import domein.DomeinController;

public class GuiController extends javax.swing.JFrame
{
/*Attributen*/
	private DomeinController domeinController;
	private InlogPaneel inlogPaneel;
	private HoofdPaneel hoofdPaneel;
	private ResourceBundle berichten;

/*Constructor*/
	public GuiController(DomeinController controller)
	{
		super("Rent-a-Car");
		this.domeinController = controller;
		
		uitzicht(0);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("Rent-a-Car");
		setIconImage((new ImageIcon("icon.png")).getImage());
	}

/*Methodes*/
	public void start()
	{
		//Inlogscherm
		inlogPaneel = new InlogPaneel(this);
		setSize(400, 300);
		setContentPane(inlogPaneel);
		setResizable(false);
		setLocationRelativeTo(null);
		setVisible(true);
	}
	public void startHoofdscherm()
	{
		//hoofdscherm
		setVisible(false);
		kiesTaal(domeinController.getIngelogdeMedewerker().getTaal());
		hoofdPaneel = new HoofdPaneel(this);
		setSize(600, 550);
		setContentPane(hoofdPaneel);
		setLocationRelativeTo(null);
		setVisible(true);
		
		domeinController.maakNieuweHuurovereenkomst();
	}
	public void enableAutoSelectie()
	{
		this.hoofdPaneel.getAutoSelectiePaneel().getBoxSelectie().setEnabled(true);
	}
	public void disableAutoSelectie()
	{
		this.hoofdPaneel.getAutoSelectiePaneel().getBoxSelectie().setEnabled(false);
		this.hoofdPaneel.getAutoSelectiePaneel().getTxaDetails().setText("");
		this.disableKlantSelectie();
	}
	public void enableKlantSelectie()
	{
		this.hoofdPaneel.getKlantSelectiePaneel().getBoxSelectie().setEnabled(true);
	}
	public void disableKlantSelectie()
	{
		this.hoofdPaneel.getKlantSelectiePaneel().getBoxSelectie().setEnabled(false);
		this.hoofdPaneel.getKlantSelectiePaneel().getTxaDetails().setText("");
	}
	public void uitzicht(int uitzicht)
	{
		try
		{
			if (uitzicht == 0)
				UIManager.setLookAndFeel(UIManager
						.getSystemLookAndFeelClassName());
			else
				UIManager.setLookAndFeel(UIManager
						.getCrossPlatformLookAndFeelClassName());
		} catch (Exception e)
		{
		}
	}
	public void kiesTaal(int keuze)
	{
		String taal;
		switch (keuze)
		{
			case 1:
				taal = "en";
				break;
			case 2:
				taal = "fr";
				break;
			default:
				taal = "nl";
				break;
		}
		this.berichten = ResourceBundle.getBundle("MessagesBundle", new Locale(
				taal));
		//wijzigt de taal van de medewerker en slaat het direct op
		if (domeinController.getIngelogdeMedewerker().getTaal() != keuze)
			domeinController.getIngelogdeMedewerker().setTaal(keuze);
	}

/*Getters & setters*/	
	public DomeinController getDomeinController()
	{
		return domeinController;
	}
	public void setDomeinController(DomeinController domeinController)
	{
		this.domeinController = domeinController;
	}

	public ResourceBundle getBerichten()
	{
		return berichten;
	}

	public void setBerichten(ResourceBundle berichten)
	{
		this.berichten = berichten;
	}

	public HoofdPaneel getHoofdPaneel()
	{
		return hoofdPaneel;
	}

	public void setHoofdPaneel(HoofdPaneel hoofdPaneel)
	{
		this.hoofdPaneel = hoofdPaneel;
	}

	public InlogPaneel getInlogPaneel()
	{
		return inlogPaneel;
	}

	public void setInlogPaneel(InlogPaneel inlogPaneel)
	{
		this.inlogPaneel = inlogPaneel;
	}
}
